package com.lyf.scm.plan.domain.remote.category;


import com.github.pagehelper.PageInfo;
import com.lyf.scm.plan.domain.remote.category.dto.SkuChannelPermitDTO;
import com.lyf.scm.plan.domain.remote.category.dto.SkuPurchasePermitDTO;
import com.lyf.scm.plan.domain.remote.category.dto.SkuStorePermitDTO;
import com.lyf.scm.plan.domain.remote.category.dto.StorePackageSkuDTO;
import com.rome.arch.core.clientobject.Response;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 品类中心
 *
 * @author wuzhuang
 * @date 2020/08/15
 */
@FeignClient(name = "SCM-CATEGORY-SERVICE")
public interface CategoryRemote {

    /**
     * 查询商品采购权（外采）
     *
     * @param skuCodeList sku代码列表
     * @return {@link Response <List<SkuPurchasePermitDTO>>}
     */
    @PostMapping("/api/category/querySkuPurchasePermit")
    Response<List<SkuPurchasePermitDTO>> querySkuPurchasePermit(@RequestBody List<String> skuCodeList);

    /**
     * 查询新开店套餐
     *
     * @param storePackageReqDTO
     * @return {@link Response <List<StorePackageSkuDTO>>}
     */
    @GetMapping("/api/category/pageStorePackage")
    Response<PageInfo<StorePackageSkuDTO>> queryStorePackageSku(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize);

    /**
     * 查询渠道批量商品的叫货权（内采）
     */
    @PostMapping("/api/category/queryChannelSkuPermit")
    Response<List<SkuPurchasePermitDTO>> queryChannelSkuPermit(@RequestBody SkuChannelPermitDTO skuChannelPermitDTO);

    /**
     * 查询门店批量商品的叫货权（内采）
     */
    @PostMapping("/api/category/queryStoreSkuPermit")
    Response<List<SkuPurchasePermitDTO>> queryStoreSkuPermit(@RequestBody SkuStorePermitDTO skuStorePermitDTO);
}
